package com.cinema.dao;

import com.cinema.entity.Schedule;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 排片数据访问接口
 */
public interface ScheduleDao {
    
    /**
     * 添加排片
     */
    void addSchedule(Schedule schedule);
    
    /**
     * 根据ID获取排片
     */
    Schedule getScheduleById(String id);
    
    /**
     * 获取所有排片
     */
    List<Schedule> getAllSchedules();
    
    /**
     * 更新排片
     */
    void updateSchedule(Schedule schedule);
    
    /**
     * 删除排片
     */
    void deleteSchedule(String id);
    
    /**
     * 检查排片是否存在
     */
    boolean scheduleExists(String id);
    
    /**
     * 根据电影查询排片
     */
    List<Schedule> getSchedulesByMovie(String movieId);
    
    /**
     * 根据放映厅查询排片
     */
    List<Schedule> getSchedulesByRoom(String roomId);
    
    /**
     * 根据时间范围查询排片
     */
    List<Schedule> getSchedulesByTimeRange(LocalDateTime startTime, LocalDateTime endTime);
    
    /**
     * 检查时间冲突
     */
    boolean hasTimeConflict(String roomId, LocalDateTime startTime, LocalDateTime endTime, String excludeScheduleId);
} 